class CommonUtil {
    // 获取UUID
    public static getUUID(): string {
        let s: any = [];
        let hexDigits: string = '0123456789abcdef';
        for (let i = 0; i < 36; i++) {
            s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
        }
        s[14] = '4'; // bits 12-15 of the time_hi_and_version field to 0010
        s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01
        s[8] = s[13] = s[18] = s[23] = '-';

        let uuid: string = s.join('');
        return uuid;
    }

    // 分组
    public static groupBy(list: any, fn: Function): any {
        const groups: any = {};
        list.forEach((item: any) => {
            const group = fn(item);
            groups[group] = groups[group] || [];
            groups[group].push(item);
        });
        return groups;
    }

    // 判断集合是否为空
    public static collectionNotEmpty(list: any): boolean {
        return !!(list && list.length > 0);
    }

    // 数组去重
    public static arrayDuplicateRemove(oldArr: any[]): any[] {
        return [...new Set(oldArr)];
    }
}
export {
    CommonUtil,
};
